﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Mail;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;

namespace WebChatApi.Common.Interface
{
    /// <summary>
    /// Interface for mail sender
    /// </summary>
    public interface IMailSender : IIdentifiable
    {
        /// <summary>
        /// Sends the mail.
        /// </summary>
        /// <param name="mailMessage">The mail message.</param>
        /// <param name="fromDisplay">From display.</param>
        void SendMail(MailMessage mailMessage, string fromDisplay);

        /// <summary>
        /// Gets or sets the SMTP address.
        /// </summary>
        /// <value>
        /// The SMTP address.
        /// </value>
        string SmtpAddress
        {
            get;
        }

        /// <summary>
        /// Gets or sets the name of the user.
        /// </summary>
        /// <value>
        /// The name of the user.
        /// </value>
        string UserName
        {
            get;
        }

        /// <summary>
        /// Gets or sets the full mail address.
        /// </summary>
        /// <value>
        /// The full mail address.
        /// </value>
        string FullMailAddress
        {
            get;
        }

        /// <summary>
        /// Gets or sets the password.
        /// </summary>
        /// <value>
        /// The password.
        /// </value>
        string Password
        {
            get;
        }

        /// <summary>
        /// Gets or sets the sender identity.
        /// </summary>
        /// <value>
        /// The sender identity.
        /// </value>
        string SenderIdentity { get; }
    }
}
